package com.campus.secondhand.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.campus.secondhand.model.dto.OrderCreateDTO;
import com.campus.secondhand.model.dto.OrderReviewDTO;
import com.campus.secondhand.entity.Order;
import com.campus.secondhand.entity.OrderReview;
import com.campus.secondhand.model.vo.OrderVO;

public interface OrderService extends IService<Order> {
    /**
     * 创建订单（买家确认付款后）
     * 初始状态为待交易(1)
     */
    Order createOrder(OrderCreateDTO orderDTO);

    /**
     * 获取买家订单列表
     * 可根据状态筛选：1-待交易，2-已完成，3-已取消，4-待评价
     */
    Page<OrderVO> getBuyerOrders(Long userId, Integer status, int page, int size);

    /**
     * 获取卖家订单列表
     * 可根据状态筛选：1-待交易，2-已完成，3-已取消，4-待评价
     */
    Page<OrderVO> getSellerOrders(Long userId, Integer status, int page, int size);

    /**
     * 获取订单详情
     */
    Order getOrderDetail(Long orderId, Long userId);

    /**
     * 确认收货
     * 将订单状态从待交易(1)改为待评价(4)
     */
    boolean confirmReceipt(Long orderId, Long userId);

    /**
     * 取消订单
     * 将订单状态改为已取消(3)
     */
    boolean cancelOrder(Long orderId, Long userId, String reason);

    /**
     * 创建订单评价
     * 将订单状态从待评价(4)改为已完成(2)
     */
    OrderReview createOrderReview(OrderReviewDTO reviewDTO);

    /**
     * 获取订单评价
     */
    OrderReview getOrderReview(Long orderId);
}